cmake_minimum_required(VERSION 3.20)
project(cpp-in-action)

set(CMAKE_CXX_STANDARD 11)

include_directories(codes/codes)

add_executable(main main.cpp)

add_executable(myfirst start/myfirst.cpp)

add_executable(stock00h oop/stock/stock00.h)

add_executable(stock00 oop/stock/stock00.cpp)

add_executable(use_stock0 oop/stock/use_stock0.cpp)

add_executable(stock1 oop/stock1/stock10.h)

add_executable(stock10 oop/stock1/stock10.cpp)

add_executable(usestock1 oop/stock1/usestock1.cpp)

set_target_properties(stock00h stock1 PROPERTIES LINKER_LANGUAGE CXX)
add_executable(error1 exception/error1.cpp)

add_executable(param algorithm/param.cpp)

add_executable(two_dimensional_array algorithm/two_dimensional_array.cpp)

add_executable(currency algorithm/class/currency.cpp)

add_executable(exception exception/exception.h)

add_executable(new_currency algorithm/class/new_currency.cpp)

add_executable(friend_currency algorithm/class/friend_currency.cpp)

add_executable(abcException codes/abcException.cpp)

include_directories(codes)
include_directories(codes/codes)

add_executable(cpp-in-action
        codes/codes/codes.cpp
        codes/codes/stdafx.cpp
        codes/codes/stdafx.h
        codes/abcConstRef.cpp
        codes/abcException.cpp
        codes/abcExceptionChar.cpp
        codes/abcFloat.cpp
        codes/abcGeneral.cpp
        codes/abcInt.cpp
        codes/abcRef.cpp
        codes/abcTemplate.cpp
        codes/adjacencyDigraph.cpp
        codes/adjacencyDigraph.h
        codes/adjacencyGraph.cpp
        codes/adjacencyGraph.h
        codes/adjacencyMatrixIterator.h
        codes/adjacencyWDigraph.cpp
        codes/adjacencyWDigraph.h
        codes/adjacencyWGraph.cpp
        codes/adjacencyWGraph.h
        codes/arrayIterator.cpp
        codes/arrayList.cpp
        codes/arrayList.h
        codes/arrayListNoSTL.cpp
        codes/arrayListNoSTL.h
        codes/arrayListWithIterator.cpp
        codes/arrayListWithIterator.h
        codes/arrayQueue.cpp
        codes/arrayQueue.h
        codes/arrayStack.cpp
        codes/arrayStack.h
        codes/averageSortTime.cpp
        codes/bestFit.cpp
        codes/binarySearch.cpp
        codes/binarySearchTree.cpp
        codes/binarySearchTree.h
        codes/binarySearchTreeWithVisit.h
        codes/binaryTree.h
        codes/binaryTreeNode.h
        codes/binaryTreeTraversals.cpp
        codes/binNode.h
        codes/binsort1.cpp
        codes/binsort2.cpp
        codes/binsort3.cpp
        codes/binType.h
        codes/booster.cpp
        codes/booster.h
        codes/bst.cpp
        codes/bst.h
        codes/bsTree.h
        codes/bubbleSort.cpp
        codes/chain.cpp
        codes/chain.h
        codes/chainNode.h
        codes/chainWithBinSort.h
        codes/chainWithIterator.cpp
        codes/chainWithIterator.h
        codes/changeLength1D.h
        codes/circularListWithHeader.cpp
        codes/circularListWithHeader.h
        codes/closestPoints.cpp
        codes/completeWinnerTree.cpp
        codes/completeWinnerTree.h
        codes/componentLabeling.cpp
        codes/compress.cpp
        codes/container.h
        codes/crossings.cpp
        codes/currency.cpp
        codes/currency.h
        codes/currencyFriend.cpp
        codes/currencyFriend.h
        codes/currencyNew.cpp
        codes/currencyNew.h
        codes/currencyOverload.cpp
        codes/currencyOverload.h
        codes/d.cpp
        codes/dBinarySearchTree.cpp
        codes/dBinarySearchTree.h
        codes/dBinarySearchTreeWithGE.h
        codes/decompress.cpp
        codes/delete2dArray.cpp
        codes/delete2dArray.h
        codes/derivedArrayStack.cpp
        codes/derivedArrayStack.h
        codes/derivedArrayStackWithCatch.cpp
        codes/derivedArrayStackWithCatch.h
        codes/derivedLinkedStack.cpp
        codes/derivedLinkedStack.h
        codes/diagonalMatrix.cpp
        codes/diagonalMatrix.h
        codes/dictionary.h
        codes/earlyBubbleSort.cpp
        codes/earlySelectionSort.cpp
        codes/edge.h
        codes/equivalenceClasses.cpp
        codes/equivNode.h
        codes/eventList.h
        codes/extendedArrayList.h
        codes/extendedChain.cpp
        codes/extendedChain.h
        codes/extendedLinearList.h
        codes/factorial.cpp
        codes/fastUnionFind.h
        codes/fifoBBLoading1.cpp
        codes/fifoBBLoading2.cpp
        codes/fifoBBLoading3.cpp
        codes/firstFit.cpp
        codes/graph.h
        codes/graphChain.h
        codes/greedyLoading.cpp
        codes/hanoiRecursive.cpp
        codes/hanoiUsingStacks.cpp
        codes/hash.h
        codes/hashChains.cpp
        codes/hashChains.h
        codes/hashTable.cpp
        codes/hashTable.h
        codes/heapSort.cpp
        codes/heapSort.h
        codes/histogram.cpp
        codes/horner.cpp
        codes/huffmanNode.h
        codes/huffmanTree.cpp
        codes/indexedBSTree.h
        codes/indexOfMax.cpp
        codes/indexOfMax.h
        codes/inef.cpp
        codes/infix.cpp
        codes/insert.cpp
        codes/insertionSort.h
        codes/insertionSort1.cpp
        codes/insertionSort2.cpp
        codes/irregularArray.cpp
        codes/iterativeBTLoading.cpp
        codes/iterativeDPKnapsack.cpp
        codes/iterativeDPMatrixChain.cpp
        codes/job.h
        codes/leastCostBBBoard.cpp
        codes/linearList.h
        codes/linkedBinaryTree.cpp
        codes/linkedBinaryTree.h
        codes/linkedDigraph.cpp
        codes/linkedDigraph.h
        codes/linkedGraph.cpp
        codes/linkedGraph.h
        codes/linkedMatrix.cpp
        codes/linkedMatrix.h
        codes/linkedQueue.cpp
        codes/linkedQueue.h
        codes/linkedStack.cpp
        codes/linkedStack.h
        codes/linkedWDigraph.cpp
        codes/linkedWDigraph.h
        codes/linkedWGraph.cpp
        codes/linkedWGraph.h
        codes/lowerTriangularMatrix.cpp
        codes/lowerTriangularMatrix.h
        codes/lptNodes.h
        codes/lptSchedule.cpp
        codes/machine.h
        codes/machineShopSimulator.cpp
        codes/make2dArray.cpp
        codes/make2dArray.h
        codes/make2dArrayNoCatch.cpp
        codes/make2dArrayNoCatch.h
        codes/makeMatrixData.cpp
        codes/matrix.cpp
        codes/matrix.h
        codes/matrixAdd.cpp
        codes/matrixElements.h
        codes/matrixMultiply1.cpp
        codes/matrixMultiply2.cpp
        codes/matrixMultiply3.cpp
        codes/matrixTerm.h
        codes/matrixTranspose.cpp
        codes/matrixWithTranspose.cpp
        codes/matrixWithTranspose.h
        codes/maxHblt.cpp
        codes/maxHblt.h
        codes/maxHeap.cpp
        codes/maxHeap.h
        codes/maxPriorityQueue.h
        codes/maxProfitBBKnapsack.cpp
        codes/maxProfitBBLoading.cpp
        codes/maze.cpp
        codes/mergeSort.cpp
        codes/mergeSort.h
        codes/minHeap.cpp
        codes/minHeap.h
        codes/minmax1.cpp
        codes/minmax2.cpp
        codes/minMax3.cpp
        codes/minPriorityQueue.h
        codes/myExceptions.h
        codes/noncrossingSubset.cpp
        codes/noRecomputationDPKnapsack.cpp
        codes/noRecomputationDPMatrixChain.cpp
        codes/noSwap.cpp
        codes/pairNode.h
        codes/parenthesisMatching.cpp
        codes/permutations.cpp
        codes/permutationsSTL.cpp
        codes/player.h
        codes/polyEval.cpp
        codes/position.h
        codes/productSTL.cpp
        codes/quadraticRoots.cpp
        codes/queue.h
        codes/quickSort.cpp
        codes/quickSort.h
        codes/railroadWithNoQueues.cpp
        codes/railroadWithQueues.cpp
        codes/railroadWithStacks.cpp
        codes/rank.cpp
        codes/rankSort1.cpp
        codes/rankSort2.cpp
        codes/recursiveBTBoard.cpp
        codes/recursiveBTKnapsack.cpp
        codes/recursiveBTLoading1.cpp
        codes/recursiveBTLoading2.cpp
        codes/recursiveBTLoading3.cpp
        codes/recursiveDPKnapsack.cpp
        codes/recursiveDPMatrixChain.cpp
        codes/rSequentialSearch.cpp
        codes/rsum.cpp
        codes/rSumCount.cpp
        codes/select.cpp
        codes/select.h
        codes/selectionSort.cpp
        codes/sequentialSearch1.cpp
        codes/sequentialSearch2.cpp
        codes/skipList.cpp
        codes/skipList.h
        codes/skipNode.h
        codes/sortedChain.cpp
        codes/sortedChain.h
        codes/sparseMatrix.cpp
        codes/sparseMatrix.h
        codes/stack.h
        codes/stringToInt.cpp
        codes/studentRecord1.h
        codes/studentRecord2.h
        codes/studentRecord3.h
        codes/studentRecord4.h
        codes/sum.cpp
        codes/sumCount1.cpp
        codes/sumCount2.cpp
        codes/sumSTL.cpp
        codes/switchBox.cpp
        codes/task.h
        codes/testAllPairs.cpp
        codes/testBellmanFord.cpp
        codes/testBipartiteCover.cpp
        codes/testBTMaxClique.cpp
        codes/testBTSalesperson.cpp
        codes/testConnected.cpp
        codes/testFindPath.cpp
        codes/testGraphSearchMethods.cpp
        codes/testKruskal.cpp
        codes/testLabelComponents.cpp
        codes/testLeastCostBBSalesperson.cpp
        codes/testMaxProfitBBMaxClique.cpp
        codes/testShortestPaths.cpp
        codes/testTopologicalOrder.cpp
        codes/threeToLong.cpp
        codes/tileBoard.cpp
        codes/timeArray.cpp
        codes/timeBFS.cpp
        codes/timeChain.cpp
        codes/timeFastSquareMatrixMultiply1.cpp
        codes/timeFastSquareMatrixMultiply2.cpp
        codes/timeInsertionSort1.cpp
        codes/timeInsertionSort2.cpp
        codes/timeInsertionSort3.cpp
        codes/timeInsertionSort4.cpp
        codes/timeList.cpp
        codes/timeMatrix.cpp
        codes/timeMatrixMultiply1.cpp
        codes/timeSparseMatrix.cpp
        codes/timeStack.cpp
        codes/treeHistogram.cpp
        codes/tridiagonalMatrix.cpp
        codes/tridiagonalMatrix.h
        codes/unionFindNode.h
        codes/unionFindWithArrays.cpp
        codes/unionFindWithChains.cpp
        codes/unionFindWithCompaction.cpp
        codes/unionFindWithTrees.cpp
        codes/unionFindWithWeightingRule.cpp
        codes/unweightedEdge.h
        codes/vectorList.cpp
        codes/vectorList.h
        codes/vertexIterator.h
        codes/weightedEdge.h
        codes/winnerTree.h
        codes/wireRouter.cpp)
